<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 输出 HTML -->
  <xsl:output method="html" encoding="UTF-8" indent="yes"/>

  <!-- 处理文章根节点 -->
  <xsl:template match="article">
    <html lang="zh">
      <head>
        <meta charset="UTF-8"/>
        <title>
          <xsl:value-of select="front/article-meta/title-group/article-title"/>
        </title>
      </head>
      <body>
        <!-- 文章标题 -->
        <!--<h1>
          <xsl:value-of select="front/article-meta/title-group/article-title"/>
        </h1>-->

        <!-- 作者信息 -->
        <!--<div class="authors">
          <xsl:for-each select="front/article-meta/contrib-group/contrib[@contrib-type='author']">
            <span>
              <xsl:value-of select="name/given-names"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="name/surname"/>
            </span>
            <xsl:if test="position() != last()">
              <xsl:text>, </xsl:text>
            </xsl:if>
          </xsl:for-each>
        </div>-->

        <!-- 摘要 -->
        <div class="jats-article abstract">
          <xsl:apply-templates select="front/article-meta/abstract"/>
        </div>

        <!-- 文章主体 -->
        <div class="jats-article article-body">
          <xsl:apply-templates select="body"/>
        </div>
      </body>
    </html>
  </xsl:template>

  <!-- 处理摘要 -->
  <xsl:template match="abstract">
    <xsl:apply-templates/>
  </xsl:template>

  <!-- 处理章节 -->
  <xsl:template match="sec">
    <div class="section">
      <xsl:if test="title != ''">
        <h2>
          <xsl:if test="label != ''">
            <span class="section-seq"><xsl:value-of select="label"/></span>
          </xsl:if>
          <xsl:value-of select="title"/>
        </h2>
      </xsl:if>
      <xsl:apply-templates select="p|list|table-wrap|fig"/>
    </div>
  </xsl:template>

  <!-- 处理段落 -->
  <xsl:template match="p">
    <p>
      <xsl:apply-templates/>
    </p>
  </xsl:template>

  <!-- 处理列表 -->
  <xsl:template match="list">
    <xsl:choose>
      <xsl:when test="@list-type='bullet'">
        <ul>
          <xsl:apply-templates select="list-item"/>
        </ul>
      </xsl:when>
      <xsl:when test="@list-type='order'">
        <ol>
          <xsl:apply-templates select="list-item"/>
        </ol>
      </xsl:when>
    </xsl:choose>
  </xsl:template>

  <!-- 处理列表项 -->
  <xsl:template match="list-item">
    <li>
      <xsl:apply-templates/>
    </li>
  </xsl:template>

  <!-- 处理表格 -->
  <xsl:template match="table-wrap">
    <div class="table-container">
      <h3>
        <xsl:value-of select="label"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="caption/p"/>
      </h3>
      <table class="table">
        <thead>
          <xsl:apply-templates select="table/thead/tr"/>
        </thead>
        <tbody>
          <xsl:apply-templates select="table/tbody/tr"/>
        </tbody>
      </table>
    </div>
  </xsl:template>

  <!-- 处理表格行 -->
  <xsl:template match="tr">
    <tr>
      <xsl:apply-templates select="th|td"/>
    </tr>
  </xsl:template>

  <!-- 处理表格单元格 -->
  <xsl:template match="th|td">
    <xsl:element name="{name()}">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

  <!-- 处理图片 -->
  <xsl:template match="fig">
    <div class="figure">
      <h3>
        <xsl:value-of select="label"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="caption/p"/>
      </h3>
      <img
        src="{graphic/@xlink:href}"
        alt="{caption/p}"
        style="max-width:100%;"
      />
    </div>
  </xsl:template>

  <!-- 处理文本格式 -->
  <xsl:template match="italic">
    <em>
      <xsl:apply-templates/>
    </em>
  </xsl:template>

  <xsl:template match="bold">
    <strong>
      <xsl:apply-templates/>
    </strong>
  </xsl:template>

  <xsl:template match="underline">
    <u>
      <xsl:apply-templates/>
    </u>
  </xsl:template>

  <xsl:template match="sup">
    <sup>
      <xsl:apply-templates/>
    </sup>
  </xsl:template>

  <xsl:template match="sub">
    <sub>
      <xsl:apply-templates/>
    </sub>
  </xsl:template>

  <!-- 处理交叉引用 -->
  <xsl:template match="xref">
    <a href="#{@rid}">
      <xsl:apply-templates/>
    </a>
  </xsl:template>

  <!-- 默认处理：保留文本内容 -->
  <xsl:template match="text()">
    <xsl:value-of select="."/>
  </xsl:template>

</xsl:stylesheet>
